package modelo;


import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;




public class Juego {

	private static final double CANTIDAD_DE_NIVELES = 10;
	private static Juego juego;
	private int nivelActual;
	private String usuario;
	private boolean juegoGanado;

	

	
	public String getUsuario(){
		return this.usuario;
	}
	
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}



	public void setNivelActual(int nivelActual) {
		this.nivelActual = nivelActual;
	}

	public int getNivelActual() {
		return nivelActual;
	}

	
	public Element getElement(Document doc) {
		Element juego = doc.createElement("Juego");

		Element usuario = doc.createElement("Usuario");
		juego.appendChild(usuario);
		usuario.setTextContent(this.usuario);

		Element nivel = doc.createElement("Nivel");
		juego.appendChild(nivel);
		nivel.setTextContent(Integer.toString(this.nivelActual));

		return juego;
	}

	public static Juego fromElement(Element element) {
		//Juego juego = new Juego(new SuperficieDeDibujo());

		NodeList childs = element.getChildNodes();
		for (int i = 0; i < childs.getLength(); i++) {
			Node child = childs.item(i);
			if (child.getNodeName().equals("Usuario")) {
				juego.usuario= child.getTextContent();
			} else if (child.getNodeName().equals("Nivel")) {
				juego.nivelActual = Integer.parseInt(child.getTextContent());
			}
		}
		
		return juego;
	}


	
	public static Juego obtenerJuego(){
		if (juego == null)
			juego = new Juego();
		return juego;
	}
	
	

	private Juego(){
		nivelActual = 1;
		usuario = "";
		juegoGanado = false;
	}

	public void actualizarNivelEnJuego() {
		if (nivelActual < CANTIDAD_DE_NIVELES){
			nivelActual ++;
		}else{
			this.juegoGanado = true;
		}
		
	}

	public boolean fueGanado() {
		return this.juegoGanado;
	}
			
	
}
